package com.yanqu.road.entity.activity.langyabang.data;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.DataStatus;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.langyabang.entity.LangYaUserEvent;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@FieldTypeAnnotation(tableName = "t_u_langya_user_case_data")
public class LangYaUserCaseGameData extends DataObject {
    @FieldTypeAnnotation(select = true,desc = "活动id")
    private int activityId;
    @FieldTypeAnnotation(select = true,desc = "玩家id")
    private long userId;
    @FieldTypeAnnotation(desc = "所有案件类型")
    private Map<Integer,Integer> allCaseData;
    @FieldTypeAnnotation(desc = "金陵风云卡牌玩法状态")
    private int caseGameStatus;                 //0未开始 1开始
    @FieldTypeAnnotation(desc = "金陵风云卡牌玩法当前案件")
    private int caseGameNowCase;
    @FieldTypeAnnotation(desc = "金陵风云卡牌玩法当前卡片")
    private int caseGameNowCard;
    @FieldTypeAnnotation(desc = "金陵风云卡牌玩法当前四维")
    private List<Integer> caseGameNowValue;
    @FieldTypeAnnotation(desc = "主玩法已读战报时间")
    private long hasReadTime;



    public int getActivityId() {
        return activityId;
    }
    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, java.lang.Integer> getAllCaseData() {
        return allCaseData;
    }
    public void setAllCaseData(java.util.Map<java.lang.Integer, java.lang.Integer> allCaseData) {
        if (null == allCaseData){
            return;
        }
        if (this.allCaseData == null || !this.allCaseData.equals(allCaseData)) {
            this.allCaseData = allCaseData;
            setOp(DataStatus.Update);
        }
    }

    public int getCaseGameStatus() {
        return caseGameStatus;
    }
    public void setCaseGameStatus(int caseGameStatus) {
        if (this.caseGameStatus != caseGameStatus) {
            this.caseGameStatus = caseGameStatus;
            setOp(DataStatus.Update);
        }
    }

    public int getCaseGameNowCase() {
        return caseGameNowCase;
    }
    public void setCaseGameNowCase(int caseGameNowCase) {
        if (this.caseGameNowCase != caseGameNowCase) {
            this.caseGameNowCase = caseGameNowCase;
            setOp(DataStatus.Update);
        }
    }

    public int getCaseGameNowCard() {
        return caseGameNowCard;
    }
    public void setCaseGameNowCard(int caseGameNowCard) {
        if (this.caseGameNowCard != caseGameNowCard) {
            this.caseGameNowCard = caseGameNowCard;
            setOp(DataStatus.Update);
        }
    }

    public java.util.List<java.lang.Integer> getCaseGameNowValue() {
        return caseGameNowValue;
    }
    public void setCaseGameNowValue(java.util.List<java.lang.Integer> caseGameNowValue) {
        if (null == caseGameNowValue){
            return;
        }
        if (this.caseGameNowValue == null || !this.caseGameNowValue.equals(caseGameNowValue)) {
            this.caseGameNowValue = caseGameNowValue;
            setOp(DataStatus.Update);
        }
    }

    public long getHasReadTime() {
        return hasReadTime;
    }
    public void setHasReadTime(long hasReadTime) {
        if (this.hasReadTime != hasReadTime) {
            this.hasReadTime = hasReadTime;
            setOp(DataStatus.Update);
        }
    }

    public void resetGame(){
        this.setCaseGameStatus(0);
        this.setCaseGameNowCard(0);
        this.setCaseGameNowValue(new ArrayList<>());
        this.setCaseGameNowCase(0);
    }
}
